//package com.iflytek
//
//import android.app.Activity
//import android.content.Context
//import android.content.SharedPreferences
//import android.os.Bundle
//import android.os.Environment
//import android.util.Log
//import androidx.annotation.Keep
//
//
//
//import java.io.File
//import java.nio.ByteBuffer
//import java.util.concurrent.Executors
//import java.util.concurrent.ScheduledExecutorService
//
//@Keep
//class SpecificIflytekManger(val context: Context,val listener: ArRecognizerListener) : InitListener {
//
//    companion object {
//        //必须调用完后flip()才可以调用此方法
//        fun conver(byteBuffer: ByteBuffer): ByteArray? {
//            byteBuffer.flip()
//            val len = byteBuffer.limit() - byteBuffer.position()
//            val bytes = ByteArray(len)
//            if (byteBuffer.isReadOnly) {
//                return null
//            } else {
//                byteBuffer[bytes]
//            }
//            byteBuffer.compact()
//            return bytes
//        }
//    }
//
//
//
//    private var execServiceStartTime: Long=0
//    private var startWriteAudioTime: Long=0;
//    private val TAG:String="IflytekManger2"
//    private var execService: ScheduledExecutorService
//    private var workspaceDir: File
//    var byteBuffer1 = ByteBuffer.allocateDirect(1024 * 1024 )
//    var byteBuffer2 = ByteBuffer.allocateDirect( 1024 * 1024 )
//
//    @Volatile
//    var isAudioTrigger = false
//
////    private val mEngineType: String= SpeechConstant.TYPE_CLOUD
//
//    private var ret: Int=0
//
//
//
//
//
//
//
//
//    // 语音听写对象
//    private var mIat: SpeechRecognizer? = null
//    // 语音听写UI
//    private var mSharedPreferences: SharedPreferences? = null
//
//
//    var myListen=MyRecognizerListener()
//
//
//    init {
//        //Log.e("test","init 1.2")
//        // 使用SpeechRecognizer对象，可根据回调消息自定义界面；
//        mIat = SpeechRecognizer.createRecognizer(context, this)
//
//        //Log.e("test","mIat="+mIat);
//        mSharedPreferences = context.getSharedPreferences(IatSettings.PREFER_NAME, Activity.MODE_PRIVATE)
//        // 设置参数
//        setParam()
//
//
//        workspaceDir= File(Environment.getExternalStorageDirectory().absolutePath + "/Record/")
//        if(!workspaceDir.exists())
//        {
//            workspaceDir.mkdirs()
//        }
//
//        execService = Executors.newScheduledThreadPool(3)
//
//    }
//
//
//    /**
//     * 参数设置
//     *
//     * @return
//     */
//    fun setParam() {
//
////        // 清空参数
////        // 清空参数
////        mIat!!.setParameter(SpeechConstant.PARAMS, null)
//
//        //Log.e("test","mIat="+mIat)
//        val lag = mSharedPreferences!!.getString("iat_language_preference", "mandarin")
////        // 设置引擎
//        // 设置音频来源为外部文件
//        mIat!!.setParameter(SpeechConstant.AUDIO_SOURCE, "-1")
//        mIat!!.setParameter(SpeechConstant.SAMPLE_RATE, "16000")
////        mIat!!.setParameter(SpeechConstant.SAMPLE_RATE, "44100")
//        mIat!!.setParameter(SpeechConstant.KEY_REQUEST_FOCUS, "false");
//        mIat!!.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");
//        // 设置引擎
//        mIat!!.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType)
//        // 设置返回结果格式
//        // 设置返回结果格式
//        mIat!!.setParameter(SpeechConstant.RESULT_TYPE, "json")
//
//        mIat!!.setParameter(SpeechConstant.ASR_PTT, "0")
//
//
//        if (mEngineType == SpeechConstant.TYPE_LOCAL) { // 设置本地识别资源
//            mIat!!.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath())
//        }
//
//    }
//
//    private fun getResourcePath(): String? {
//        val tempBuffer = StringBuffer()
//        //识别通用资源
//        tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "iat/common.jet"))
//        tempBuffer.append(";")
//        tempBuffer.append(ResourceUtil.generateResourcePath(context, ResourceUtil.RESOURCE_TYPE.assets, "iat/sms_16k.jet"))
//        //识别8k资源-使用8k的时候请解开注释
//        return tempBuffer.toString()
//    }
//
//
//
//
//    public fun read(audioData:ByteArray,listen: RecognizerListener){
////        setParam()
//        startWriteAudioTime=System.currentTimeMillis()
//        Log.d(TAG," startWriteAudioTim")
//        ret = mIat!!.startListening(listen)
//        if (ret != ErrorCode.SUCCESS) {
//            Log.d(TAG,"识别失败,错误码：$ret,请点击网址https://www.xfyun.cn/document/error-code查询解决方案")
//        } else {
//            mIat!!.writeAudio(audioData, 0, audioData.size)
//            mIat!!.stopListening()
//        }
//    }
//
//    fun stopRecordListen() {
////        mIat!!.cancel()
//        mIat!!.stopListening()
//    }
//
//
//
//   fun read(byteBuffer: ByteBuffer) {
//        val audioData = conver(byteBuffer)
//        execServiceStartTime=System.currentTimeMillis();
//        execService!!.submit {
//
//            Log.d(TAG,"!isAudioTrigger="+(!isAudioTrigger)+" "+audioData!!.size)
//            if (audioData != null && !isAudioTrigger) {
//                read(audioData!!, myListen)
//            }else{
//                isAudioTrigger=false
//            }
//
//            Log.d("IflytekManger","队列耗时:"+(System.currentTimeMillis()-execServiceStartTime))
//        }
//    }
//
//    fun read(byteArray: ByteArray) {
//        execServiceStartTime=System.currentTimeMillis();
//        execService!!.submit {
//
//            read(byteArray!!, myListen)
//
//            Log.d("IflytekManger","队列耗时:"+(System.currentTimeMillis()-execServiceStartTime))
//        }
//    }
//
//
//
//
//    inner class MyRecognizerListener : RecognizerListener {
//        override fun onVolumeChanged(i: Int, bytes: ByteArray) {
//            listener.onVolumeChanged(i,bytes)
//        }
//
//        override fun onBeginOfSpeech() {
//            listener.onBeginOfSpeech()
//        }
//        override fun onEvent(p0: Int, p1: Int, p2: Int, p3: Bundle?) {
//            listener.onEvent(p0,p1,p2,p3)
//        }
//
//        override fun onEndOfSpeech() {
//            listener.onEndOfSpeech()
//        }
//
//
//        override fun onResult(results: RecognizerResult, b: Boolean) {
//            listener.onResult(results,b)
//
//        }
//
//        override fun onError(speechError: SpeechError?) {
//            listener.onError(speechError)
//        }
//    }
//
//    override fun onInit(code: Int) {
//        //Log.e("test","code:"+code)
//    }
//
//
//}